Par Romain Tiennot le samedi 5 novembre 2011, 15:53 - Serveur
Il est possible d'integrer un MAC dans un domaine Active Directory.
Une fois integré, vous pouvez vous authentifier avec votre compte du domaine. Pour administrer plus facilement le MAC, vous pouvez rajouter un groupe ou utilisateur Active Directory administrateur du MAC en ligne de commande.
Pour ce faire, deux solutions :
En SSH en activant dans "Préférence Systeme" > "Partage" > "Session à distance"
Avec l'outil "terminal" disponible dans "Application"
Une fois activé, il suffit de saisir la commande suivante pour rajouter un utilisateur du domaine administrateur du mac :
dseditgroup -o edit -a "DOMAIN\utilisateur" admin
Et pour rajouter un groupe du domaine administrateur du mac :
dseditgroup -o edit -a "DOMAIN\group" -t group admin
Par Romain Tiennot le jeudi 2 juin 2011, 21:07 - Autoit
Voici un petit script permettant de créer des comptes Active Directory avec un fichier Excel.
Dans mon exemple, je renseigne simplement le nom, prénom et service du futur utilisateur.
Le script aura comme fonction de :
Verifier la presence du fichier excel
Verifier que toute les cellules "Nom" soient saisie
Verifier que toute les cellules "Prenom" soient saisie
Verifier que toute les cellules "Service" soient saisie
Verifier que la somme de "Nom" et "Prenom" soit inferieur à 20 caractère
Une fois les checks validé, la création du compte peux commercer :
Création du compte
Renseigne dans la description le nom
Renseigne dans la description le prenom
Renseigne le nom complet
Renseigne le chemin du profils
Rajoute dans le groupe du service
Génère le mot de passe
Active le changement de mot passe à la premiere ouverture de session
Ajoute une restriction d'horaire d'ouverture de session pour certain groupe
J'ai créé le script sous Autoit qui utilise la fonction "AD" disponible ICI :
Voici le code :
#include <Excel.au3>#include <AD.au3>$fichier = @ScriptDir &"\comptead.xls"$fin = 0
;~ verification de la présence du fichier excel
If not FileExists(@ScriptDir&"\comptead.xls") = 1 Then
msgbox(64,"ERREUR","Le fichier comptead.xls n'est pas présent dans "&@ScriptDir)exit
Else
;~ Ferme Excel
ProcessClose("Excel.exe")
;~ Ouvre le fichier excel
_ExcelBookOpen($fichier)$oExcel = ObjGet("","Excel.Application")$oExcel.SheetsInNewWorkbook = 1
;~ Cache le fichier excel
$oExcel.Visible = 0
;~ Compte le nombre de ligne
$nb_ligne = $oExcel.ActiveSheet.UsedRange.Rows.Count
;~ Début de la verification des lignes
for$i = 1 to $nb_ligne-1 step 1
;~ Création de la variable "nom"présent dans la premiere colonne
$nom = $oExcel.Activesheet.Cells(1+$i,1).Value
;~ Création de la variable "prenom"présent dans la deuxieme colonne
$prenom = $oExcel.Activesheet.Cells(1+$i,2).Value
;~ Création de la variable "fonction"présent dans la troisieme colonne
$fonction = $oExcel.Activesheet.Cells(1+$i,3).Value
;~ Création de la variable "cb" qui compte le nom de caratère nom + prenom
$cb = stringlen($nom)+stringlen($prenom)
;~ Si aucun nom n'est saisie dans la colonne "nom" alors message d'erreur
if not $nom = truethen
msgbox(0,"Erreur Nom "," La cellule "&$i+1&" est vide dans la colonne nom")exit
;~ Si aucun prenom n'est saisie dans la colonne "prenom" alors message d'erreur
elseif not $prenom = true Then
msgbox(0,"Erreur Prenom","La cellule "&$i+1&" est vide dans la colonne prenom")
Exit
;~ Si l'addition du prenom et nom egal ou superieur à 20 caratère alors erreur
elseif $cb >= 20 Then
msgbox(0,"Erreur Caractère","Ligne "&$i+1&", l'identifiant "&$prenom&""&$nom&" est > ou = à 20 caractères : "& $cb)
exit
EndIf
;~ Si dans la colonne fonction, les champs saisie n'egal pas "Direction" ou "Administration" ou "Prodution1" ou "Production2" ou "Informatique" alors erreur
if not (($fonction = "Direction") or ($fonction = "Administration") or ($fonction = "Production 1") or ($fonction = "Production 2") or ($fonction = "Informatique")) Then
msgbox(0,"Erreur Service","La cellule "&$i+1& " n'est saisie correctement dans la colonne service")
exit
endif
Next
;~ En fonction de la fonction, les variables sont generé comme l'UPN, le nom complet, son OU et le GROUPE
for$i = 1 to $nb_ligne-1 step 1$nom = $oExcel.Activesheet.Cells(1+$i,1).Value
$prenom = $oExcel.Activesheet.Cells(1+$i,2).Value
$fonction = $oExcel.Activesheet.Cells(1+$i,3).Value
$ncomplet = $prenom&" "&$nom$upn = StringReplace($prenom&"."&$nom," ","")if$fonction = "Direction" Then
$ou = 'OU=Utilisateurs,OU=Service Direction,DC=drinkevol,DC=lan'$groupe = 'CN=Direction,'&$ou
desc()
elseif $fonction = "Administration" Then
$ou = 'OU=Utilisateurs,OU=Service Administratif,DC=drinkevol,DC=lan'$groupe = 'CN=Administration,'&$ou
desc()
elseif $fonction = "Informatique" Then
$ou = 'OU=Utilisateurs,OU=Service Informatique,DC=drinkevol,DC=lan'$groupe = 'CN=Technique,'&$ou
desc()
elseif $fonction = "Production 1" Then
$ou = 'OU=Utilisateurs,OU=Production 1,OU=Service Production,DC=drinkevol,DC=lan'$groupe = 'CN=Production1,'&$ou
desc()
elseif $fonction = "Production 2" Then
$ou = 'OU=Utilisateurs,OU=Production 2,OU=Service Production,DC=drinkevol,DC=lan'$groupe = 'CN=Production2,'&$ou
desc()
EndIf
func desc()
_AD_Open()
;~ Création de l'utilisateur
$iValue = _AD_CreateUser($ou, $upn, $ncomplet)
;~ Si c'est reussi alors
If $iValue = 1 Then
$fin = $fin + 1
MsgBox(64, "Création du compte de '"&$ncomplet&"'", "L'utilisateur '"&$ncomplet&"' a été crée avec succés est dans l'OU '"&$ou,1)
;~ $iValue = _AD_ModifyAttribute($sUser, "description", "Description")
;~ $iValue = _AD_ModifyAttribute($sUser, "mail", "email")
;~ On ecrit dans le champs "Prenom"$iValue = _AD_ModifyAttribute($upn, "givenName", $prenom)
;~ On ecrit dans le champs "Nom"$iValue = _AD_ModifyAttribute($upn, "sn", $nom)
;~ On créé le nom d'affichage
$iValue = _AD_ModifyAttribute($upn, "displayName", $ncomplet)
;~ On indique le chemin du profils
$iValue = _AD_ModifyAttribute($upn, "profilepath", "\\drinkevol.lan\Profils\"&$upn)
;~ On l'ajoute dans le groupe
$iValue = _AD_AddUserToGroup($groupe, $upn)
;~ On genere son mot de passe
$iValue = _AD_SetPassword($upn, StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456")
;~ On active le changement de mot de passe
Run(@ComSpec &" /c "&'dsmod user "CN='&$ncomplet&","&$ou&'" -mustchpwd yes', "", @SW_HIDE)
;~ En fonction de son groupe, on active une restriction de connexion
if$fonction = "Production 1" or $fonction = "Production 2" or $fonction = "Administration" Then
Run(@ComSpec &" /c "&'net user '&$upn&' /Domain /time:L,07:00-20:00;Ma,07:00-20:00;Me,07:00-20:00;J,07:00-20:00;V,07:00-20:00;S,07:00-20:00;D,07:00-20:00', "", @SW_HIDE)
EndIf
;~ si l'erreur = 1 alors le compte existe deja
ElseIf @error = 1 Then
MsgBox(64, "Création du compte de '"&$ncomplet&"'", "L'utilisateur '" & $ncomplet & "' est déja existant",1)
;~ ElseIf @error = 2 Then
;~ MsgBox(64, "Création du compte de '"&$ncomplet&"'", "OU '" & $ou & "' does not exist")
;~ ElseIf @error = 3 Then
;~ MsgBox(64, "Création du compte de '"&$ncomplet&"'", "Value for CN (e.g. Lastname Firstname) is missing")
;~ ElseIf @error = 4 Then
;~ MsgBox(64, "Création du compte de '"&$ncomplet&"'", "Value for$sAD_User is missing")
Else
MsgBox(64, "Création du compte de '"&$ncomplet&"'", "Retour code erreur '" & @error & "' venant de l'Active Directory")
EndIf
_AD_Close()
endfunc
Next
EndIf
;~ Ferme le fichier excel
ProcessClose("Excel.exe")
;~ Affiche un petit rapport
msgbox(0,"Fin","La création est terminée avec "&$fin&" compte(s) créé(s)",2)
Et comme toujours, la petite video montrant le tout :
Une fois l'integration effectué et que la commande "wbinfo -u" et "wbinfo -g" vous retourne un résultat, nous pouvons editer notre fichier Samba nommé "smb.conf" dans "/etc/samba/smb.conf".
Prenez l'editeur de votre choix. Dans mon cas, c'est "vi" :
vi/etc/samba/smb.conf
A la fin du fichier, vous pouvez voir "Share Definitions". C'est à la suite que l'on doit renseigner les informations de partage.
Dans mon cas, je créé six partage :
Commun
Technique
Production1
Production2
Administration
Direction
Chaque partage correspond à un groupe aillant exactement le même nom.
Dans le fichier Samba, nous allons donné les authorisations en fonctione des groupes. On peux egalement donner les droits par utilisateur, mais c'est un peu plus long...
Voici la liste des droits à donné par partage :
Voici la configuration du fichier Samba qui correspond à l'image du dessus :
#======================= Share Definitions =======================# Nom du patage[Commun]# Commentaire du partage
comment = Partage Document pour Tous
# Chemin du partage
path = /data/commun
# Lecture seul : Nonread only = no
# Navigable = Oui
browseable = yes# Invité : Non
guest ok = no
# lors de la création d'un fichier, tous le monde peut le modifier
create mask = 0777
#lors de la création d'un répertoire, tous le monde peut le modifier
directory mask = 0777
# Nom du patage caché avec le $[Technique$]# Commentaire du partage
comment = Partage reserve technique
# Chemin du partage
path = /data/technique
# Lecture seul : Nonread only = no
# Navigable = Oui
browseable = yes# Invité : Non
guest ok = no
# lors de la création d'un fichier, tous le monde peut le modifier
create mask = 0777
#lors de la création d'un répertoire, tous le monde peut le modifier
directory mask = 0777
# Les utilisateurs authorisés a acceder au partage. le"@" siginifi un groupe.
valid users = @DRINKEVOL\technique,@DRINKEVOL\direction
# Droit d'ecriture : Non
writeable = no
# Les utilisateurs authorisés a ecrire au partage. le "@" signifi un groupewrite list = @DRINKEVOL\technique
[Administration]
comment = Partage reserve administration
path = /data/administration
read only = no
browseable = yes
guest ok = no
create mask = 0777
directory mask = 0777
valid users = @DRINKEVOL\administration,@DRINKEVOL\technique,@DRINKEVOL\direction
writeable = no
write list = @DRINKEVOL\administration,@DRINKEVOL\technique
[Direction]
comment = Partage reserve direction
path = /data/direction
read only = no
browseable = yes
guest ok = no
create mask = 0777
directory mask = 0777
valid users = @DRINKEVOL\direction,@DRINKEVOL\technique
[Production1]
comment = Partage reserve production1
path = /data/production1
read only = no
browseable = yes
guest ok = no
create mask = 0777
directory mask = 0777
valid users = @DRINKEVOL\production1,@DRINKEVOL\technique,@DRINKEVOL\direction
writeable = no
write list = @DRINKEVOL\production1,@DRINKEVOL\technique
[Production2]
comment = Partage reserve production2
path = /data/production2
read only = no
browseable = yes
guest ok = no
create mask = 0777
directory mask = 0777
valid users = @DRINKEVOL\production2,@DRINKEVOL\technique,@DRINKEVOL\direction
writeable = no
write list = @DRINKEVOL\production2,@DRINKEVOL\technique
Voici ma premiere video avec commentaire audio montrant les partages Samba :
Par Romain Tiennot le dimanche 20 février 2011, 17:30 - Linux
Voici la derniere partie. La configuration du service BitTorrent.
FreeNAS comporte un client Torrent permettant de télécharger, par exemple, les images d'Ubuntu
Par Romain Tiennot le jeudi 17 février 2011, 11:05 - Linux
La partie 7 montre comment configurer le serveur Web de FreeNAS. Pour compliquer la chose, j'y integre la création d'un Virtual Host dans le serveur FTP avec une autentification AD pour uploader les pages web directement dans le bon répertoire.
Démonstration en image :